# 输出：使用计算机向用户返回数据叫做输出
# 输出函数： print


# 普通数据输出
print(123) # 输出数值
print('你好啊！') # 输出字符串
print(1 + 3) # 输出计算式
print('你好', 'Python', 520) # 一次输出多个数据内容

# 输出格式化后的字符串
# 记住：格式化 和 print 没有任何关系，它只负责输出
# 格式化字符串的格式：'要输出的字符信息 %占位符' % 变量 此时就可以将变量和字符串格式拼接到一起

# 输出小明今年13岁了
print('小明今年13岁了')
#  过了一年，小明长了一岁
print('小明今年14岁了')
# 此后每年输出年龄都需要修改代码， 不方便， 所以我们希望可以使用变量存储学员年龄，当年龄变化时输出内容也发生变化
age = 13
print('小明今年%d岁了' % age)
age = 14
print('小明今年%d岁了' % age)

# 思考： 为什么说格式化 和 print 没有关系，是字符串的功能
str1 = '小李今年%d岁了' % age
print('程序结束')


# 多占位符格式化方式
name = '张三'
age =22
gender = '男'

# 多占位符格式化字符串方式：'要输入的字符串信息, %占位符1,  %占位符2....' % (变量1, 变量2.....)

# 格式化输出，将数据输出到控制台上，输出 "学员名称是张三，年龄22岁，性别为男"
# TypeError: %d format: a real number is required, not str
# 占位符一定要数据类型准确， %d 接受整型数据 %f 接收浮点类型数据 %s 接收字符串类型数据
#print('学员的名称是%d, 年龄%d岁, 性别为%d' % name , age , gender)

# TypeError: not enough arguments for format string
# 在格式化字符时，百分号后只能识别一个数据，所以如果有多个变量需要使用括号括起来
#print('学员的名称是%s, 年龄%d岁, 性别为%s' % name , age , gender)

print('学员的名称是%s, 年龄%d岁, 性别为%s' % (name, age, gender))

# 注意： 多占位符格式化字符串时，要注意：
# 1. 占位符数量和变量的数量必须保持一致，不能多也不能少
# 2. 占位符与变量顺序要依次对应, 不能交叉赋值，也不能跳跃赋值
# 3. 占位符与变量一定要数据类型完全对应
# 4. 在格式化字符串时, 百分号后只能识别一个数据, 所以，如果有多个变量需要使用括号括起来

# 练习:
# 定义三个变量， 自己姓名(str)  年龄(int)  身高(float)
# 使用格式化输出的方式，输出个人信息

print('\n')
print('----------------------------')

name = 'ttl'
age = 22
height = 176.5
print('我的名字是%s, 我的年龄是%d岁, 我的身高是%.1f厘米' %(name, age, height))